const Router = require('koa-router')

const router = new Router({
  prefix: '/book'
})

/*
 *@Description: 新增小说分类
 *@params: type：类型value  typeName：类型名称
 *@Author:  lupan
 *@Date: 2019-07-14 17:18:04
*/
router.post('/menu/add', async(ctx) => {
  // 获取传递参数
  const {type, typeName} = ctx.request.body
  // 校验参数是否合法
  if (!type || !typeName) {
    ctx.body = $msgError('参数不全')
    return
  }
  if (!$check.strLength(type) || !$check.strLength(typeName)) {
    ctx.body = $msgError('参数不合规范')
    return
  }
  // 验证唯一性
  const is = await $dbQuery.isExist('book_menu', [{
    name: 'type',
    value: type
  }, {
    name: 'typeName',
    value: typeName
  }])
  if (is) {
    ctx.body = $msgError('分类已存在')
    return
  }
  // 创建数据
  const sql = `INSERT INTO book_menu (type, typeName) values ('${type}', '${typeName}')`

  try {
    const data = await $query(sql)
    if (data.code) {
      ctx.body = $msgSuccess()
    } else {
      ctx.body = $msgError()
    }
  } catch (err) {
    ctx.body = $msgError()
  }
})
/*
 *@Description: 查询小说分类
 *@params: 
 *@Author:  lupan
 *@Date: 2019-07-15 13:18:31
*/
router.post('/menu/query', async(ctx) => {
  try {
    const data = await $query('select * from book_menu')
    if (data.code) {
      ctx.body = $msgSuccess(data.data)
    } else {
      ctx.body = $msgError()
    }
  } catch (err) {
    ctx.body = $msgError()
  }
})

/*
 *@Description: 修改分类
 *@params: 
 *@Author:  lupan
 *@Date: 2019-07-15 13:26:51
*/
router.post('/menu/update', async(ctx) => {
  const {ids, status, type, typeName} = ctx.request.body
  // 校验参数是否合法
  if (!ids) {
    ctx.body = $msgError('参数不全')
    return
  }
  if (!(!!status || !!type || !!typeName)) {
    ctx.body = $msgError('参数不全')
    return
  }

  // 检查ids是否为数组
  if ($check.isArray(ids)){
    // 是数组 只能批量修改状态
    
  } else {
    // 不是数组 可以单个修改 状态、类型值、类型名称
    let sql = 'update book_menu set'
    status && (sql += ` status = ${status},`)
    type && (sql += ` type = '${type}',`)
    typeName && (sql += ` typeName = '${typeName}',`)
    sql = sql.substr(0, sql.length-1);
    sql += ` WHERE id = ${ids}`
    try {
      const is = await $query(sql)
      if (is.code) {
        ctx.body = $msgSuccess()
      } else {
        ctx.body = $msgError('修改失败')
      }
    } catch (err) {
      ctx.body = $msgError()
    }
  }

})
module.exports = router